1. Field of the Invention
The present invention relates to a communication method with a data communication protocol for packet transfer between a transport layer and a data link layer, and a data communications terminal using the data communication protocol for data communication.
2. Description of Related Art
The data communication protocol being the interfacing condition for data communications, typically the TCP/IP (Transmission Control Protocol/Internet Protocol) and OSI (Open Systems Interconnection) protocols, has a hierarchical structure as shown in FIG. 1. As shown, the hierarchical structure consists, at the level of operations executable by application programs, of an application layer 16 containing characteristics of data communications terminals, coding control function, etc., presentation layer 15 containing communication-oriented profiles, document-oriented profiles, etc., session layer 14 having a control function for data transmission and reception IDs, etc., transport layer 13 for carrying out a transport procedure independent of any network because the transport layer 13 is an upper layer, network layer 12 for control of call setting, disconnection, etc. for each network, data link layer 11 for establishing, releasing, error control, etc. of a data link, and a physical layer 10 for setting a user and network voltage physical interface conditions.
For packet transmission, a packet generated by a software of the application layer 16 (also including the presentation layer 15 and session 14) is transferred to a software which implements the transport layer 13, and then sequentially from the transport layer 13 to the network layer 12, from the network layer 12 to the data link layer 11, and further to a lower layer. Finally, the packet is represented in the form of an electric or light pulse for transmission from a data communications terminal.
In the conventional packaged data communications terminal, the packet is copied from a memory only twice. That is, the memory copying is done when the packet is moved from the application layer 16 to the transport layer 13 in a main memory 1 and when the packet is moved from the main memory 1 of the data communications terminal to a packet buffer 3 in a network interface module 2 via a bus 5, as shown in FIG. 2. The packet is moved between other layers higher than the data link layer 11 just by passing a pointer to a location in the main memory 1 where the packet is stored.
In the memory copying from the application layer 16 to the transport layer 13, a flow control is made to avoid any data loss due to a packet buffer overflow in the transport layer 13. Namely, when the packet buffer in the transport layer 13 is about to overflow, such a control will be done that the application layer 16 suspends packet copying. However, data flow between the data link layer 11 and a higher layer will not be controlled. The packet buffers of the data link layer 11 include one in the network interface module 2 and one in the main memory 1. Since no flow control is done, however, even if both the buffers overflow, the higher layer will continuously transfer packets to the data link layer 11 with the result that the packets will be discarded.
The reason for the above lies in the basic design policy for the conventional data communications protocol that the reliability of data communications is not assured for the layers lower than the transport layer 13 and the interaction between the layers is minimized.
The reliability of the data communications is assured only by packet retransmission from the transport layer 13. Therefore, even if there is no space for packets in the packet buffers of the data link layer 11, the protocol in the transport layer 13 does not suspend the packet transmission, thus the packets are lost and thereafter packets are retransmitted.
Conventionally, however, a packet is generated in the application layer 16, and transferred to the data link layer 11 via the transport layer 13 and network layer 12 at a lower rate than the rate of packet transmission from the network interface module 2 to outside the terminal, so that there occurs little packet loss due to overflow of the packet buffer in the data link layer 11.
The conventional data communication protocol is likely to be much deteriorated in throughput of data communications as the terminal performance and network function have become higher. More particularly, since the performance of the terminal components such as CPU, etc. has rapidly become improved, the rate of packet transfer to the data link 11 from a higher layer is higher than that of the packet transmission from the network interface module 2 to outside the terminal in some cases. In such a case, there is a possibility that the packet buffers of the data link layer 11 overflow, resulting in a packet loss even in the terminal.
Also, the data link layer 11 has functionally been improved to freely change the packet transmission rate as in the ATM (asynchronous transmission mode). In this case, there is a possibility that the rate of packet transmission from the data link layer 11 to outside the terminal is controlled to a low one depending upon how much congested the network is. As the packet transmission rate is thus low, the difference between the low rate of packet transmission from the data link layer 11 to outside the terminal and the rate of packet transfer to the data link layer 11 from a higher layer is larger, the possibility of the packet loss will be larger.
When a packet is lost, the transport layer 13 has to retransmit a packet, so that the data transmission throughput will be lower and the bandwidth of the network be wasted. Particularly in a transport protocol for congestion control such as TCP, when a packet loss is detected, the packet transmission rate is autonomously controlled to a low one by reducing the transmission window size or the like, the data transmission throughput will be remarkably low.
FIG. 3 shows the characteristic curve showing TCP throughput vs. maximum transmission window size.
The round trip time (RTT) between a transmitting terminal and a receiving terminal is 20 ms. With a large RTT, the transmission window size has to be increased in order to provide a higher data transmission throughput by TCP. The transmission window size referred to herein means a maximum data length that can be batch-transmitted with response of no reception acknowledgment. If the transmission window size is increased excessively, the packet buffers of the data link layer 11 overflow, resulting in a packet loss. This is caused by the fact that a higher layer will batch-transfer data in an amount for the transmission window size to the data link layer 11. If a packet is lost, the availability control of TCP is put into action to largely lower the data transmission throughput. The conventional data communication protocol is disadvantageous in that the to-be-avoided packet loss inside the terminal lowers the data transmission throughput and network availability.